function pascalCase(name) {
    return (
        name.charAt(0).toUpperCase() +
        name.slice(1).replace(/-(\w)/g, (m, n) => n.toUpperCase())
    );
}

// Just import style for https://github.com/ant-design/ant-design/issues/3745
const req = require.context(
    './components',
    true,
    /^\.\/[^_][\w-]+\/style\/index\.tsx?$/,
);

req.keys().forEach((mod) => {
    let v = req(mod);
    if (v && v.default) {
        v = v.default;
    }
    const match = mod.match(/^\.\/([^_][\w-]+)\/index\.tsx?$/);
    if (match && match[1]) {
        if (match[1] === 'message' || match[1] === 'notification') {
            // message & notification should not be capitalized
            exports[match[1]] = v;
        } else {
            exports[pascalCase(match[1])] = v;
        }
    }
});

module.exports = exports;
